首先安装依赖:
1 | sudo apt update |
然后安装用于管理用户和项目的 Gitosis
1 | git clone https://github.com/res0nat0r/gitosis.git && cd gitosis |
新建一个单独用于 git 的账户,-m
用于生成用户文件夹
1 | useradd -m git |
对 Gitosis 进行配置
在 本机 生成公钥
1
ssh-keygen -t rsa
上传公钥至服务器并激活Gitosis,可以使用记事本配合 vi 复制到服务器端
1
su git
初始化Gitosis
1
gitosis-init < /home/git/id_rsa.pub
到这里 Git 服务器就好了
- 默认的仓库地址是 /home/git/repositories
- Git 管理员用户是 git
配置用户
- 在本机,将 gitosis-admin 仓库克隆下来
1 | git clone git@192.168.0.10:gitosis-admin.git |
修改 keydir 文件夹和 gitosis.conf
keydir 文件夹存放公钥
username.pub
文件,gitosis.conf 中如下填写,意思是用户 username 对 gitosis-admin test 两个仓库具有写的属性(只读属性配置members 和 readonly)
1 | [group gitosis-admin] |
- 修改后的仓库推送到服务器
1 | git add . |
到这里已经配置成功了,本地项目 test 推送流程
1 | cd test |
在新项目git-test里首次推送数据到服务器前,需先设定该服务器地址为远程仓库,但你不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建(貌似 gitosis.conf 需要配置权限)。
目前没有找到匿名用户 clone 的方法,只能手工加载所有人的 公钥 文件。
生成公钥:
1 | PS ssh-keygen -t rsa |
路径 C:\Users\你的用户名.ssh